Do all event processing in dispatch() instead of prepare() and check().
authorOwen Taylor <otaylor@redhat.com>
Fri, 15 Jan 1999 15:56:32 +0000 (15:56 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Fri, 15 Jan 1999 15:56:32 +0000 (15:56 +0000)
Thu Jan 14 19:19:51 1999  Owen Taylor  <otaylor@redhat.com>

* gdk/gdkevents.c: Do all event processing in
dispatch() instead of prepare() and check().

gdk/gdkevents.c
gdk/x11/gdkevents-x11.c

index 24e1b67a04b08122399ecd4859d8a303f8f6686d..5eb1b7815b742d8f1396c9caaf58519d518b32f3 100644 (file)
@@ -2000,8 +2000,7 @@ gdk_event_prepare (gpointer  source_data,
 
   *timeout = -1;
 
-  gdk_events_queue ();
-  retval = (gdk_event_queue_find_first () != NULL);
+  retval = (gdk_event_queue_find_first () != NULL) || XPending (gdk_display);
 
   GDK_THREADS_LEAVE ();
 
@@ -2017,9 +2016,9 @@ gdk_event_check   (gpointer  source_data,
   GDK_THREADS_ENTER ();
 
   if (event_poll_fd.revents & G_IO_IN)
-      gdk_events_queue ();
-
-  retval = (gdk_event_queue_find_first () != NULL);
+    retval = (gdk_event_queue_find_first () != NULL) || XPending (gdk_display);
+  else
+    retval = FALSE;
 
   GDK_THREADS_LEAVE ();
 
@@ -2053,6 +2052,7 @@ gdk_event_dispatch (gpointer  source_data,
  
   GDK_THREADS_ENTER ();
 
+  gdk_events_queue();
   event = gdk_event_unqueue();
 
   if (event)
index 24e1b67a04b08122399ecd4859d8a303f8f6686d..5eb1b7815b742d8f1396c9caaf58519d518b32f3 100644 (file)
@@ -2000,8 +2000,7 @@ gdk_event_prepare (gpointer  source_data,
 
   *timeout = -1;
 
-  gdk_events_queue ();
-  retval = (gdk_event_queue_find_first () != NULL);
+  retval = (gdk_event_queue_find_first () != NULL) || XPending (gdk_display);
 
   GDK_THREADS_LEAVE ();
 
@@ -2017,9 +2016,9 @@ gdk_event_check   (gpointer  source_data,
   GDK_THREADS_ENTER ();
 
   if (event_poll_fd.revents & G_IO_IN)
-      gdk_events_queue ();
-
-  retval = (gdk_event_queue_find_first () != NULL);
+    retval = (gdk_event_queue_find_first () != NULL) || XPending (gdk_display);
+  else
+    retval = FALSE;
 
   GDK_THREADS_LEAVE ();
 
@@ -2053,6 +2052,7 @@ gdk_event_dispatch (gpointer  source_data,
  
   GDK_THREADS_ENTER ();
 
+  gdk_events_queue();
   event = gdk_event_unqueue();
 
   if (event)